-module (func).

-export ([foo/0, bar/0, next/1]).

next(Seq) -> fun() ->
	[Seq | next(Seq+1)]
	end.

foo() ->
	X = 2,
	Bump = fun(X) -> X + 1 end.

bar() -> 
	X = 3,
	Add = fun(Y) -> X + Y end,
	Add(10).

% 	f o o ( ) ＞ X = 2 ,

% B u m p = f u n ( X ) ＞ X + 1 e n d . B u m p ( 1 0 ) . 1 5 ＞ f u n s : f o o ( ) 1 1 b a r ( ) ＞ X = 3 , A d d = f u n ( Y ) ＞ X + Y e n d , A d d ( 1 0 ) 1 ＞ f u n s : b a r ( ) 1 3在 f o o中 ， B u m p中的局部变量 X遮盖了较早的 X ，而且 f o o ( )的结果表明在 B u m p （ 1 0 ）中 ， X通过参数传递获得值 1 0 。在这个 b a r的例子中 ，很显然 X的原始定义可以在 A d d内访问 。